package org.byqh.dqeai.entity.proxy;

import com.easy.query.core.expression.parser.core.available.TableAvailable;
import com.easy.query.core.proxy.AbstractProxyEntity;
import com.easy.query.core.proxy.SQLColumn;
import com.easy.query.core.proxy.SQLSelectAsExpression;
import com.easy.query.core.proxy.fetcher.AbstractFetcher;
import com.easy.query.core.proxy.core.EntitySQLContext;
import org.byqh.dqeai.entity.EaiSysUser;
import com.easy.query.core.proxy.columns.types.SQLStringTypeColumn;
import com.easy.query.core.proxy.columns.types.SQLLocalDateTimeTypeColumn;

/**
 * this file automatically generated by easy-query, don't modify it
 * 当前文件是easy-query自动生成的请不要随意修改
 * 如果出现属性冲突请使用@ProxyProperty进行重命名
 *
 * @author easy-query
 */
public class EaiSysUserProxy extends AbstractProxyEntity<EaiSysUserProxy, EaiSysUser> {

    private static final Class<EaiSysUser> entityClass = EaiSysUser.class;

    public static final EaiSysUserProxy TABLE = createTable().createEmpty();

    public static EaiSysUserProxy createTable() {
        return new EaiSysUserProxy();
    }

    public EaiSysUserProxy() {
    }

    /**
     * 用户登录唯一标识
     * {@link EaiSysUser#getUserId}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userId() {
        return getStringTypeColumn("userId");
    }

    /**
     * 用户代码
     * {@link EaiSysUser#getUserCode}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userCode() {
        return getStringTypeColumn("userCode");
    }

    /**
     * 用户名称
     * {@link EaiSysUser#getUserName}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userName() {
        return getStringTypeColumn("userName");
    }

    /**
     * 登录密码
     * {@link EaiSysUser#getUserPassword}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userPassword() {
        return getStringTypeColumn("userPassword");
    }

    /**
     * 组织机构ID
     * {@link EaiSysUser#getOrgId}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> orgId() {
        return getStringTypeColumn("orgId");
    }

    /**
     * 性别
     * {@link EaiSysUser#getUserSex}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userSex() {
        return getStringTypeColumn("userSex");
    }

    /**
     * 邮箱
     * {@link EaiSysUser#getUserEmail}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userEmail() {
        return getStringTypeColumn("userEmail");
    }

    /**
     * 电话
     * {@link EaiSysUser#getUserTelephone}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userTelephone() {
        return getStringTypeColumn("userTelephone");
    }

    /**
     * 手机
     * {@link EaiSysUser#getUserMobile}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userMobile() {
        return getStringTypeColumn("userMobile");
    }

    /**
     * QQ号
     * {@link EaiSysUser#getUserRtx}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userRtx() {
        return getStringTypeColumn("userRtx");
    }

    /**
     * 用户IP地址
     * {@link EaiSysUser#getUserIp}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> userIp() {
        return getStringTypeColumn("userIp");
    }

    /**
     * 0表示未启用1表示启用
     * {@link EaiSysUser#getActive}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> active() {
        return getStringTypeColumn("active");
    }

    /**
     * 创建日期
     * {@link EaiSysUser#getCreateDate}
     */
    public SQLLocalDateTimeTypeColumn<EaiSysUserProxy> createDate() {
        return getLocalDateTimeTypeColumn("createDate");
    }

    /**
     * 创建用户ID
     * {@link EaiSysUser#getCreateUserId}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> createUserId() {
        return getStringTypeColumn("createUserId");
    }

    /**
     * 最后更新的日期
     * {@link EaiSysUser#getUpdateDate}
     */
    public SQLLocalDateTimeTypeColumn<EaiSysUserProxy> updateDate() {
        return getLocalDateTimeTypeColumn("updateDate");
    }

    /**
     * 更新用户ID
     * {@link EaiSysUser#getUpdateUserId}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> updateUserId() {
        return getStringTypeColumn("updateUserId");
    }

    /**
     * 备注
     * {@link EaiSysUser#getRemarks}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> remarks() {
        return getStringTypeColumn("remarks");
    }

    /**
     * 失效日期
     * {@link EaiSysUser#getExpireDate}
     */
    public SQLLocalDateTimeTypeColumn<EaiSysUserProxy> expireDate() {
        return getLocalDateTimeTypeColumn("expireDate");
    }

    /**
     * 部门ID
     * {@link EaiSysUser#getDutyId}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> dutyId() {
        return getStringTypeColumn("dutyId");
    }

    /**
     * 员工编号
     * {@link EaiSysUser#getJobId}
     */
    public SQLStringTypeColumn<EaiSysUserProxy> jobId() {
        return getStringTypeColumn("jobId");
    }

    @Override
    public Class<EaiSysUser> getEntityClass() {
        return entityClass;
    }

    /**
     * 数据库列的简单获取
     *
     * @return
     */
    public EaiSysUserProxyFetcher FETCHER = new EaiSysUserProxyFetcher(this, null, SQLSelectAsExpression.empty);

    public static class EaiSysUserProxyFetcher extends AbstractFetcher<EaiSysUserProxy, EaiSysUser, EaiSysUserProxyFetcher> {

        public EaiSysUserProxyFetcher(EaiSysUserProxy proxy, EaiSysUserProxyFetcher prev, SQLSelectAsExpression sqlSelectAsExpression) {
            super(proxy, prev, sqlSelectAsExpression);
        }

        /**
         * 用户登录唯一标识
         * {@link EaiSysUser#getUserId}
         */
        public EaiSysUserProxyFetcher userId() {
            return add(getProxy().userId());
        }

        /**
         * 用户代码
         * {@link EaiSysUser#getUserCode}
         */
        public EaiSysUserProxyFetcher userCode() {
            return add(getProxy().userCode());
        }

        /**
         * 用户名称
         * {@link EaiSysUser#getUserName}
         */
        public EaiSysUserProxyFetcher userName() {
            return add(getProxy().userName());
        }

        /**
         * 登录密码
         * {@link EaiSysUser#getUserPassword}
         */
        public EaiSysUserProxyFetcher userPassword() {
            return add(getProxy().userPassword());
        }

        /**
         * 组织机构ID
         * {@link EaiSysUser#getOrgId}
         */
        public EaiSysUserProxyFetcher orgId() {
            return add(getProxy().orgId());
        }

        /**
         * 性别
         * {@link EaiSysUser#getUserSex}
         */
        public EaiSysUserProxyFetcher userSex() {
            return add(getProxy().userSex());
        }

        /**
         * 邮箱
         * {@link EaiSysUser#getUserEmail}
         */
        public EaiSysUserProxyFetcher userEmail() {
            return add(getProxy().userEmail());
        }

        /**
         * 电话
         * {@link EaiSysUser#getUserTelephone}
         */
        public EaiSysUserProxyFetcher userTelephone() {
            return add(getProxy().userTelephone());
        }

        /**
         * 手机
         * {@link EaiSysUser#getUserMobile}
         */
        public EaiSysUserProxyFetcher userMobile() {
            return add(getProxy().userMobile());
        }

        /**
         * QQ号
         * {@link EaiSysUser#getUserRtx}
         */
        public EaiSysUserProxyFetcher userRtx() {
            return add(getProxy().userRtx());
        }

        /**
         * 用户IP地址
         * {@link EaiSysUser#getUserIp}
         */
        public EaiSysUserProxyFetcher userIp() {
            return add(getProxy().userIp());
        }

        /**
         * 0表示未启用1表示启用
         * {@link EaiSysUser#getActive}
         */
        public EaiSysUserProxyFetcher active() {
            return add(getProxy().active());
        }

        /**
         * 创建日期
         * {@link EaiSysUser#getCreateDate}
         */
        public EaiSysUserProxyFetcher createDate() {
            return add(getProxy().createDate());
        }

        /**
         * 创建用户ID
         * {@link EaiSysUser#getCreateUserId}
         */
        public EaiSysUserProxyFetcher createUserId() {
            return add(getProxy().createUserId());
        }

        /**
         * 最后更新的日期
         * {@link EaiSysUser#getUpdateDate}
         */
        public EaiSysUserProxyFetcher updateDate() {
            return add(getProxy().updateDate());
        }

        /**
         * 更新用户ID
         * {@link EaiSysUser#getUpdateUserId}
         */
        public EaiSysUserProxyFetcher updateUserId() {
            return add(getProxy().updateUserId());
        }

        /**
         * 备注
         * {@link EaiSysUser#getRemarks}
         */
        public EaiSysUserProxyFetcher remarks() {
            return add(getProxy().remarks());
        }

        /**
         * 失效日期
         * {@link EaiSysUser#getExpireDate}
         */
        public EaiSysUserProxyFetcher expireDate() {
            return add(getProxy().expireDate());
        }

        /**
         * 部门ID
         * {@link EaiSysUser#getDutyId}
         */
        public EaiSysUserProxyFetcher dutyId() {
            return add(getProxy().dutyId());
        }

        /**
         * 员工编号
         * {@link EaiSysUser#getJobId}
         */
        public EaiSysUserProxyFetcher jobId() {
            return add(getProxy().jobId());
        }

        @Override
        protected EaiSysUserProxyFetcher createFetcher(EaiSysUserProxy cp, AbstractFetcher<EaiSysUserProxy, EaiSysUser, EaiSysUserProxyFetcher> prev, SQLSelectAsExpression sqlSelectExpression) {
            return new EaiSysUserProxyFetcher(cp, this, sqlSelectExpression);
        }
    }
}
